云服务之腾讯云--服务器搭建--第三章:Mysql and Nginx 安装与配置

  上回书说道采用 node 搭建了一个简易的服务器,本章我们将要介绍如何在云服务器上安装 mysql 以及 nginx, 如有不当之处,还望指正,谢谢。

MySQL 的安装与配置

  mysql 使我们最常用到的关系型数据库了,其基本信息在这里也不絮叨了,直入正题

1
2
3
4
yum isntall wget
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server

安装成功之后重启 mysql 服务

1
service mysqld restart

初次安装 mysql 时 root 账户是没有密码的, 设置密码的方法:

1
2
3
mysql -uroot
mysql> set password for `root`@`localhost` = password('mypassword');
mysql> exit;

  接下来我们创建一个属于我们项目的数据库,并连接数据库
one

two

  接下来我们要想在自己的机器上通过第三方数据库可视化工具进行连接,需要我们将我们的数据库远程访问权限打开

改表法

我们新安装的数据库一般情况下是不允许从远程登录的,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,将”localhost”改为”%”

1
2
3
4
5
6
7
8
9
10
mysql -u root -p 
mysql> use mysql;
# %表示所有ip都可以进行远程访问
mysql> update user set host = '%' where user = 'root';
# 或者直接添加一条语句   
mysql> insert into user (host,user,password) values('192.168.11.110','root',password('123456'));  
# 查看一下修改结果
mysql> select host, user from user;
# 将修改的信息推送到内存中或重启服务器
mysql> FLUSH PRIVILEGES

授权法

在安装mysql的机器上运行:

1
2
3
4
5
6
7
8
9
10
11
# 进入到mysql服务器
mysql -h localhost -u root
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
# 赋予任何主机访问数据的权限
比如我们想用 myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
# 如果想允许用户myuser从ip为192.168.11.110的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.11.110'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
# 将修改的信息推送到内存中或重启服务器
mysql>FLUSH PRIVILEGES
mysql>EXIT

接下来我们在本地电脑上采用 Navicat 连接我们云服务器上的数据库

three

Nginx 的安装与配置

安装nginx

参考: http://blog.csdn.net/ul646691993/article/details/52104082 采用 yum install 安装,依赖都包含了

检查是否安装过 nginx

1
2
3
4
5
$ find -name nginx
# 如果已经安装过 nginx,就先卸载
$ yum remove nginx
# 查看本机 nginx 的地址
nginx -t

接下来我们进行安装

1
2
3
4
5
6
7
8
9
$ cd /opt
# 去官网下载最新版的 nginx
$ wget http://nginx.org/download/nginx-1.12.0.tar.gz
# 解压 nginx 压缩包
$ tar -zxvf nginx-1.12.0.tar.gz
$ cd nginx-1.12.0
# 接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装
$ ./configure #(--preifx=/usr/local/nginx)#
# 默认安装在/usr/local/nginx

此时会报错
err

这是因为我们没有安装其依赖包,接下来我们回过头来进行安装其依赖环境
首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装

安装方式一 安装包安装 成功

$ yum install gcc-c++ 这个不需要安装包,直接使用yum命令就可以

安装PCRE库
1
2
3
4
5
6
7
$ cd /usr/local/
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
$ tar -zxvf pcre-8.40.tar.gz
$ cd pcre-8.40
$ ./configure
$ make
$ make install
安装zlib库
1
2
3
4
5
6
7
$ cd /usr/local/ 
$ wget http://zlib.net/zlib-1.2.8.tar.gz
$ tar -zxvf zlib-1.2.8.tar.gz
$ cd zlib-1.2.8
$ ./configure
$ make
$ make install
安装ssl
1
2
3
4
5
6
$ cd /usr/local/
$ wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
$ tar -zxvf openssl-1.0.1j.tar.gz
$ ./config
$ make
$ make install

完成以上安装之后,进行nginx的安装

1
2
3
4
5
6
$ wget http://nginx.org/download/nginx-1.12.0.tar.gz
$ tar -zxvf nginx-1.12.0.tar.gz
$ cd nginx-1.12.0
$ ./configure
$ make
$ make install

安装完成后进行启动nginx:
$ /usr/local/nginx/sbin/nginx

检查是否启动成功:打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。
部分命令如下:

1
2
3
4
5
6
7
8
# 重启
$ /usr/local/nginx/sbin/nginx –s reload
# 停止
$ /usr/local/nginx/sbin/nginx –s stop
# 测试配置文件是否正常
$ /usr/local/nginx/sbin/nginx –t
# 强制关闭
$ pkill nginx
安装方式二 没成功,还请各位指点,谢谢
1
2
3
4
$   yum install gcc-c++
$ yum install pcre pcre-devel
$ yum install zlib zlib-devel
$ yum install openssl openssl--devel

zlib 和 pcre安装时会报错,我们来看一看错误提示

err

在这里我们看一下第三个提示,我们机器已经包含有 zlib 的环境了,我们回过头来来尝试继续安装 nginx
$ cd nginx-1.7.4
$ ./configure

使用nginx进行我们的Node项目反向代理

创建我们的配置文档 node-tencent.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ cd /usr/local/nginx
$ mkdir myConfig
$ cd myConfig
$ vi node-tencent.conf

upstream nodejs {
server 127.0.0.1:3000;
#server 127.0.0.1:3001;
keepalive 64;
}
server {
listen 80;
server_name 172.0.0.1;
access_log /opt/log/nginx/test.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://nodejs;
}
}

然后回到 /usr/local/nginx/conf下修改nginx.conf, 在http下加入我们刚才的配置文件

1
include       /usr/local/nginx/myConfig/*;

重启我们的nginx,使其重新加载配置文件, /usr/local/sbin/nginx -s reload

在浏览器里直接输出我们的服务器IP地址就可以访问到了